package com.hst.capacity.domain.service;

import com.hst.capacity.domain.model.entity.auth.TokenEntity;
import com.hst.capacity.domain.model.entity.auth.UserRoleEntity;
import com.hst.capacity.domain.model.response.auth.LoginUser;

import java.util.List;

public interface TokenService {

    /**
     * 创建用户令牌
     *
     * @param userId 用户ID
     * @return
     */
    TokenEntity createAccessToken(String userId);

    /**
     * 查找用户令牌是否存在，用于令牌验证
     *
     * @param accessToken 访问令牌
     */
    TokenEntity getAccessToken(String accessToken);

    /**
     * 访问令牌有效性校验
     */
    boolean verifyAccessToken(String accessToken);

    void destroyAccessToken(String userId);

    /**
     * 按访问令牌查询登陆用户信息
     *
     * @param accessToken 访问令牌
     */
    LoginUser getLoginUser(String accessToken);

}
